using System;
using System.Collections.Generic;
using System.Text;

namespace Fuzzy
{
    public class FuzzyUniverse
    {
        private static FuzzyOperation fuzzyOperation;

        /// <summary>
        /// Gets or sets the operation used in all of the fuzzy sets.
        /// (T-norm, S-norm, complement.)
        /// </summary>
        public static FuzzyOperation FuzzyOperation
        {
            get { return FuzzyUniverse.fuzzyOperation; }
            set { FuzzyUniverse.fuzzyOperation = value; }
        }

        private static Defuzzification defuzzification;

        /// <summary>
        /// Gets or sets the defuzzification method used in all of the fuzzy sets.
        /// </summary>
        public static Defuzzification Defuzzification
        {
            get { return FuzzyUniverse.defuzzification; }
            set { FuzzyUniverse.defuzzification = value; }
        }

        static FuzzyUniverse()
        {
            fuzzyOperation = new MinMaxFuzzyOperation();
            defuzzification = new COADefuzzification();
        }
    }
}
